function OP_LB = RDEU_OP_LB(State, State_PROB, ...
                            K, CPFlag, TTM, S0, S0_ADJ, RF, DY, TC, ...
                            degree_dist_shape, degree_dist_portion)
% The code is based on the following paper:
%   Chen, T. Y., Lin, Y. L., and Tzeng, L. Y., forthcoming.
%   Estimating probability weighting functions through option pricing bounds. Review of Asset Pricing Studies.
%
% Copyright: Tzu-Ying Chen, Yo-Lan Lin, Larry Y. Tzeng
% Date: January 30, 2024

CDF = cumsum(State_PROB);
CDF(end) = 1;                                                               
CDF = P1998(CDF, degree_dist_shape, degree_dist_portion);                  
State_PROB = [CDF(:, 1) diff(CDF')'];                                          

OP_LB_C = (S0 .* power(1 + DY, - TTM))' - ...
          (K .* power(1 + RF, - TTM))' + ...
          S0' .* (State_PROB * max((K ./ S0) - State, 0)') .* ...
          power(sum(State_PROB .* State, 2), - 1);

OP_LB = OP_LB_C;